demos: Use Cairo instead of gdk_draw_pixbuf()
authorBenjamin Otte <otte@redhat.com>
Mon, 12 Jul 2010 14:48:53 +0000 (16:48 +0200)
committerBenjamin Otte <otte@redhat.com>
Mon, 26 Jul 2010 14:42:48 +0000 (16:42 +0200)
demos/testpixbuf-scale.c
demos/testpixbuf.c

index d512513f6ddb493ec01955d26905b16f279de4af..6d335e1cc0be3348253ecbd537ce17b695be661b 100644 (file)
@@ -35,6 +35,7 @@ gboolean
 expose_cb (GtkWidget *widget, GdkEventExpose *event, gpointer data)
 {
   GdkPixbuf *dest;
+  cairo_t *cr;
 
   gdk_window_set_back_pixmap (widget->window, NULL, FALSE);
   
@@ -48,11 +49,13 @@ expose_cb (GtkWidget *widget, GdkEventExpose *event, gpointer data)
                              interp_type, overall_alpha,
                              event->area.x, event->area.y, 16, 0xaaaaaa, 0x555555);
 
-  gdk_draw_pixbuf (widget->window, widget->style->fg_gc[GTK_STATE_NORMAL], dest,
-                  0, 0, event->area.x, event->area.y,
-                  event->area.width, event->area.height,
-                  GDK_RGB_DITHER_NORMAL, event->area.x, event->area.y);
-  
+  cr = gdk_cairo_create (event->window);
+
+  gdk_cairo_set_source_pixbuf (cr, dest, 0, 0);
+  gdk_cairo_rectangle (cr, &event->area);
+  cairo_fill (cr);
+
+  cairo_destroy (cr);
   g_object_unref (dest);
   
   return TRUE;
index 64357c11a5745552d89636a5b129698a27939014..2c4ee01d4430c3933c47cc919cd46460fbcdbcf3 100644 (file)
@@ -322,6 +322,7 @@ expose_func (GtkWidget *drawing_area, GdkEventExpose *event, gpointer data)
 
        if (gdk_pixbuf_get_has_alpha (pixbuf)) {
                GdkPixbuf *dest;
+                cairo_t *cr;
          
                gdk_window_set_back_pixmap (drawing_area->window, NULL, FALSE);
          
@@ -335,11 +336,13 @@ expose_func (GtkWidget *drawing_area, GdkEventExpose *event, gpointer data)
                                            GDK_INTERP_BILINEAR, 255,
                                            event->area.x, event->area.y, 16, 0xaaaaaa, 0x555555);
                
-               gdk_draw_pixbuf (drawing_area->window, drawing_area->style->fg_gc[GTK_STATE_NORMAL], dest,
-                                0, 0, event->area.x, event->area.y,
-                                event->area.width, event->area.height,
-                                GDK_RGB_DITHER_NORMAL, event->area.x, event->area.y);
-               
+                cr = gdk_cairo_create (drawing_area->window);
+
+                gdk_cairo_set_source_pixbuf (cr, dest, 0, 0);
+                gdk_cairo_rectangle (cr, &event->area);
+                cairo_fill (cr);
+
+                cairo_destroy (cr);
                g_object_unref (dest);
        } else {
                gdk_draw_rgb_image (drawing_area->window,